Chinese Readme.md • Usage • Dashboard Introduction • AWS Services • Architecture design • Deployment Guide • Features • Contribution
Do you want to publish once and sell globally? Do you want to accurately deliver product information to customers in different languages? Do you want to change currency units with a single click and realize real-time exchange rates? The "So,global" backend manager can fulfill all your needs. Click: "So,global" for a quick experience.
"So,global" has a simple interface, provides high-quality services in a user-friendly way, and minimizes user learning costs.
- "So, global" registration and login use email verification.
- Users can select the language in the upper right corner to adjust the system language.
- When registering, users are required to select a country to facilitate subsequent language settings for the order management system.
After logging in to "So, global", the backend management interface will appear.
- The left side is the product information, and the right side is the order information of the product. Below are the functional components.
- After the user clicks on the product on the left, the corresponding order will appear on the right, and corresponding operations can be performed. Click to view the Operation Guide.
- AWS Elastic Beanstalk: Create a Java environment and deploy jar package back-end services with one click.
- AWS Lambda:
- Perform real-time exchange rate calculations.
- Works with Amazon Translate to provide high-quality translation results.
- AWS S3:
- Access user product information as a picture bed.
- Store the configuration files and historical versions required by Elastic Beanstalk.
- Store page frame translations.
- AWS IAM: Resource access management.
- AWS EC2: stores web front-end services.
- AWS Amplify API: enables JavaScript to call AWS Lambda functions.
- AWS Cognito: Manage identity pools and grant front-end permissions.
•Cloud Service Architecture • Backend Architecture • Database Schema •
- Grant Lambda permission to operate the corresponding AWS S3 Bucket library.
- Grant Lambda permission to call AWS Translate.
- Compile the back-end code into a jar package
- Open AWS Elastic beanstalk, create a Java 8 environment, and upload the corresponding jar package. If the environment is detected as green, it means it is in good condition and can be used.
❗ When using AWS Elastic beanstalk to create an environment configuration, you need to add the environment variable PORT and set it to 5000. The Spring Boot default port is 8080, while AWS automatically detects the port as 5000.
Objects | Operations |
Users | Login |
Register | |
Products | Add products information |
Update products information | |
Delete products information | |
Search products | |
Release a product in multiple countries with one click | |
Remove a product in multiple regions with one click | |
Remove multiple products from a certain region with one click | |
Orders | Retrieve all orders for a certain product |
Retrieve all orders of a certain customer | |
Search based on order amount | |
Obtain the three countries with the best-selling products within a certain period of time | |
Languages | Translation |
Price | Real-time exchange rate conversion |
🌟 Exchange rate crawling: When performing real-time exchange rate conversion, we found that websites that can dynamically convert exchange rates have anti-crawler mechanisms. In the end, we searched Baidu for responses each time and crawled the results returned based on the knowledge graph
🌟 Asynchronous translation of more stable information (such as frame display) to improve response efficiency
- Use AWS Gateway instead of Spring Boot to create a true Serverless server structure
- Translation of important information should also be handled asynchronously (Java cannot be granted the authority to write to S3, resulting in this feature not being implemented)
The difficulty is not realized
Tax calculation:
After reading relevant information, I found that taxes and fees on various commodities in various countries They are all different. In addition to the exporting country and importing country, the tax query on the National Import and Export Center also needs to enter the complete product number
Postage calculation:
Postage calculation requires postal code and other information. Initially I wanted to crawl a website that wanted to crawl FedEx and other cross-border express delivery services, but the operating logic of the website made it impossible to crawl
🤸♂️ Zhipeng Zhao (Home/Email)): Cloud service writing (translation , exchange rate), document writing, service cloud
🦸♀️ Bin Wang (Homepage/Email)): Java backend, front-end and back-end interface docking, database design
🙋♂️ Yuzhou Zhang (homepage/email): Vue front-end development, front-end and back-end interface docking